import assert from "assert";
import {stackOrderInsideOut} from "../../src/index.js";

it("stackOrderInsideOut(series) returns an order by appearance", () => {
  assert.deepStrictEqual(stackOrderInsideOut([
    [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1]],
    [[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 2], [0, 0]],
    [[0, 0], [0, 0], [0, 0], [0, 0], [0, 3], [0, 0], [0, 0]],
    [[0, 0], [0, 0], [0, 0], [0, 4], [0, 0], [0, 0], [0, 0]],
    [[0, 0], [0, 0], [0, 5], [0, 0], [0, 0], [0, 0], [0, 0]],
    [[0, 0], [0, 6], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]],
    [[0, 7], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
  ]), [2, 3, 6, 5, 4, 1, 0]);
});

it("stackOrderInsideOut(series) treats NaN values as zero", () => {
  assert.deepStrictEqual(stackOrderInsideOut([
    [[0, 0], [0, NaN], [0, 0], [0, 0], [0, 0], [0, 0], [0, 1]],
    [[0, 0], [0, 0], [0, NaN], [0, 0], [0, 0], [0, 2], [0, 0]],
    [[0, 0], [0, 0], [0, 0], [0, 0], [0, 3], [0, 0], [0, 0]],
    [[0, 0], [0, 0], [0, 0], [0, 4], [0, NaN], [0, 0], [0, 0]],
    [[0, 0], [0, 0], [0, 5], [0, 0], [0, 0], [0, NaN], [0, 0]],
    [[0, NaN], [0, 6], [0, 0], [0, NaN], [0, 0], [0, 0], [0, 0]],
    [[0, 7], [0, NaN], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
  ]), [2, 3, 6, 5, 4, 1, 0]);
});
